Errors
Pool
Error Name | error code | Description |
---|---|---|
Pool_BorrowAmountTooLow(uint256,address,uint256) | ec8c58d9 | Borrowed amount is lower than minimum borrow amount |
Pool_DebtTooLow(uint256,address,uint256) | fa33d66d | Debt is below min debt amount |
Pool_FeeTooHigh() | 87881b47 | Given fee value is greater than 100% |
Pool_InsufficientBorrowLiquidity(uint256,uint256,uint256) | bbf9dcf4 | Insufficient pool liquidity to service borrow |
Pool_InsufficientWithdrawLiquidity(uint256,uint256,uint256) | bfaa5c8e | Insufficient pool liquidity to service withdrawal |
Pool_NoRateModelUpdate(uint256) | e57d69dc | Rate model was not found in the Sentiment registry |
Pool_OnlyPoolOwner(uint256,address) | d2d2acbe | Function access restricted only to the pool owner |
Pool_OnlyPositionManager(uint256,address) | 3b0a6bb6 | Function access restricted only to Sentiment Position Manager |
Pool_OracleNotFound(address) | 62ece640 | No oracle found for pool asset |
Pool_PoolAlreadyInitialized(uint256) | e9a00b4a | Attempt to initialize an already existing pool |
Pool_PoolCapExceeded(uint256) | 4cdec45c | Pool deposits exceed asset cap |
Pool_PoolPaused(uint256) | dcb75bce | Pool is paused |
Pool_RateModelNotFound(bytes32) | 25947b69 | No pending rate model update for the pool |
Pool_TimelockExpired(uint256,uint256,uint256) | 05012df9 | Rate model timelock deadline has passed |
Pool_TimelockPending(uint256,uint256,uint256) | 7ec55917 | Rate model timelock delay has not been completed |
Pool_ZeroAddressOwner() | a258c672 | Zero address cannot be the pool owner |
Pool_ZeroShareRedeem(uint256,uint256) | 3fb5a6ef | Attempt to redeem zero shares worth of assets from the pool |
Pool_ZeroSharesBorrow(uint256,uint256) | 2a2b6de3 | Attempt to borrow zero shares worth of assets from the pool |
Pool_ZeroSharesDeposit(uint256,uint256) | e45eaa51 | Attempt to deposit zero shares worth of assets to the pool |
Pool_ZeroSharesRepay(uint256,uint256) | 4e4e9e6c | Attempt to repay zero shares worth of assets to the pool |
Position
Error Name | error code | Description |
---|---|---|
Position_ExecFailed(address,address) | e93dfe32 | Exec operation on the position returned false |
Position_MaxAssetsExceeded(address) | b6acde7e | Number of assets held by the position exceeds MAX_ASSETS |
Position_MaxDebtPoolsExceeded(address) | f95b984b | Number of pools with active borrows exceeds MAX_DEBT_POOLS |
Position_OnlyPositionManager(address,address) | 02787588 | Function access restricted to Sentiment Position Manager |
Position Manager
Error Name | error code | Description |
---|---|---|
PositionManager_AddUnknownToken(address) | 0018c19d | Attempt to add unrecognized asset to a position's asset list |
PositionManager_ApproveUnknownAsset(address) | e61feed6 | Attempt to approve unknown asset |
PositionManager_DepositUnknownAsset(address) | 20d1dc8d | Attempt to deposit unrecognized asset to position |
PositionManager_HealthCheckFailed(address) | 3236e202 | Position health check failed |
PositionManager_LiquidateHealthyPosition(address) | 1a2f48b7 | Cannot liquidate healthy position |
PositionManager_OnlyPositionAuthorized(address,address) | 06540d14 | Function access restricted to authorozied addresses |
PositionManager_OnlyPositionOwner(address,address) | 2280c1e9 | Function access restricted to position owner only |
PositionManager_PredictedPositionMismatch(address,address) | 9012152c | Predicted position address does not match with deployed address |
PositionManager_SeizeInvalidAsset(address,address) | e5b0202a | Seized asset does not belong to to the position's asset list |
PositionManager_TransferUnknownAsset(address) | fac1a4bf | Attempt to transfer unrecognized asset out of position |
PositionManager_UnknownFuncSelector(address,bytes4) | 61db8792 | Unknown target-function selector pair |
PositionManager_UnknownPool(uint256) | 7de7d454 | The pool a position is trying to borrow from does not exist |
PositionManager_UnknownSpender(address) | 7280232c | Unknown spenders cannot be granted approval to position assets |
Risk Engine
Error Name | error code | Description |
---|---|---|
RiskEngine_CannotBorrowPoolAsset(uint256) | 2e762e16 | Pool LTV for the asset being lent out must be zero |
RiskEngine_LtvLimitBreached(uint256) | c3f8e7ec | Proposed LTV is outside of protocol LTV bounds |
RiskEngine_LtvUpdateExpired(uint256,address) | 24aad6d1 | Timelock deadline for LTV update has passed |
RiskEngine_LtvUpdateTimelocked(uint256,address) | 03c287a9 | Timelock delay for the pending LTV update has not been completed |
RiskEngine_MaxLtvTooHigh() | 2b3af9e6 | Global max ltv must be less than 100% |
RiskEngine_MinLtvTooLow() | e2dc5a7b | Global min ltv cannot be zero |
RiskEngine_NoLtvUpdate(uint256,address) | 188505a6 | There is no pending LTV update for the given Pool-Asset pair |
RiskEngine_NoOracleFound(address) | 03206973 | There is no oracle associated with the given asset |
RiskEngine_OnlyPoolOwner(uint256,address) | fa5947cd | Function access is restricted to the owner of the pool |
Risk Module
Error Name | error code | Description |
---|---|---|
RiskModule_LiquidateHealthyPosition(address) | 181d012b | Cannot liquidate healthy positions |
RiskModule_NoBadDebt(address) | 58f1ee46 | Position does not have any bad debt |
RiskModule_SeizedTooMuch(uint256,uint256) | e1fab7c8 | Value of assets seized by the liquidator exceeds liquidation discount |
RiskModule_UnsupportedAsset(address,uint256,address) | 65f81bdf | Position contains an asset that is not supported by a pool that it borrows from |
RiskModule_ZeroMinReqAssets() | 6eda0aa4 | Minimum assets required in a position with non-zero debt cannot be zero |
Super Pool
Error Name | error code | Description |
---|---|---|
SuperPool_FeeTooHigh() | 80ed0c2c | Fee value is greater than 100% |
SuperPool_InvalidQueueReorder() | 07c2a12f | Invalid queue reorder parameters |
SuperPool_MaxQueueLengthReached(address) | 6ffa3bf6 | Number of pools in the queue exceeds MAX_QUEUE_LENGTH |
SuperPool_NoFeeUpdate() | eba5da00 | No pending SuperPool fee update |
SuperPool_NonZeroPoolBalance(address,uint256) | 6752a1af | Attempt to remove underlying pool with non-zero deposits |
SuperPool_NotEnoughLiquidity(address) | 366f1c06 | Insufficient Liquidity to service withdrawal |
SuperPool_OnlyAllocatorOrOwner(address,address) | 20f8d4db | Function access is restricted to pool owners and allocators |
SuperPool_PoolAlreadyInQueue(uint256) | d163b6d3 | Attempt to add a pool already in the queue |
SuperPool_PoolAssetMismatch(address,uint256) | 18d7db2f | Underlying pool asset does not match Super Pool asset |
SuperPool_PoolNotInQueue(uint256) | 64f40e0a | Attempt to interact with a queue not in the SuperPool queue |
SuperPool_QueueLengthMismatch(address) | 2234ed25 | Reordered queue length does not match current queue length |
SuperPool_ReorderQueueLength() | a02e5f08 | Reordered queue length does not match original queue length |
SuperPool_SuperPoolCapReached() | 65ff1852 | Global asset cap for this SuperPool has been reached |
SuperPool_TimelockExpired(uint256,uint256) | bc180d84 | Superpool fee timelock deadline has passed |
SuperPool_TimelockPending(uint256,uint256) | 606c5dda | Superpool fee timelock delay has not been completed |
SuperPool_ZeroAssetMint(address,uint256) | 5918a504 | Attempt to mint zero asset worth of shares from the pool |
SuperPool_ZeroAssetRedeem(address,uint256) | 6e9c69fb | Attempt to withdraw zero shares worth of assets |
SuperPool_ZeroFeeRecipient() | f5375a33 | SuperPools with non-zero fees cannot have an address(0) fee recipient |
SuperPool_ZeroPoolCap(uint256) | 1c7f96f6 | Underlying pools must have non-zero pool caps |
SuperPool_ZeroShareDeposit(address,uint256) | 7a404523 | Attempt to deposit zero shares worth of assets to the pool |
SuperPool_ZeroShareWithdraw(address,uint256) | 54195064 | Attempt to withdraw zero shares worth of assets |
Super Pool Factory
Error Name | error code | Description |
---|---|---|
SuperPoolFactory_TooFewInitialShares(uint256) | fa6f6aaa | Amount of initial shares burned is too low |
SuperPoolFactory_ZeroFeeRecipient() | 1f59886b | SuperPools with non-zero fees cannot have an address(0) fee recipient |
Chainlink Oracles
Error Name | error code | Description |
---|---|---|
ChainlinkEthOracle_GracePeriodNotOver() | 7ec3cef7 | L2 Sequencer has recently recovered from downtime and is in its grace period |
ChainlinkEthOracle_NonPositivePrice(address) | b079f33d | Latest price update for asset has a negative value |
ChainlinkEthOracle_SequencerDown() | fd0643dc | L2 sequencer is experiencing downtime |
ChainlinkEthOracle_StalePrice(address) | 07def312 | Last price update for asset was before the accepted stale price threshold |
ChainlinkUsdOracle_GracePeriodNotOver() | f30bbf0d | Last price update for asset was before the accepted stale price threshold |
ChainlinkUsdOracle_NonPositivePrice(address) | 12748980 | Latest price update for asset has a negative value |
ChainlinkUsdOracle_SequencerDown() | c03e4c05 | L2 sequencer is experiencing downtime |
ChainlinkUsdOracle_StalePrice(address) | e7cbfb51 | Last price update for asset was before the accepted stale price threshold |